package org.lvgo.adapter.object.demo1;


/**
 * 现实世界的定义:适配器可帮助两个不兼容的接口协同工作。
 * 接口可能不兼容,但内部功能应该适合需要,此时适用于适配器。。
 * 适配器设计模式允许其他不兼容的类通过转换一起工作
 * 一个类的接口到客户期望的接口。
 *
 * <p>
 * 适配器模式有两种变体：
 * 类适配器实现适配器的接口；
 * 对象适配器使用构造函数来在适配器对象中包含适配器；
 * 此示例使用对象适配器方法。
 *
 * <p>
 * 适配器（{@link FishingBoatAdapter}）转换适配器类的接口（
 * {@link FishingBoat}）到客户期望的合适的一个（{@link RowingBoat}）。
 *
 * <p>
 * 海盗来了！
 * 我们需要{@link RowingBoat}才能逃离！
 * 我们有一个{@link FishingBoat}和我们的队长。
 * 我们没时间编造一艘新船！
 * 我们需要重用这个{@link FishingBoat}。
 * 船长需要一艘可以操作的划艇。
 * 该规范位于{@link RowingBoat}。 我们将使用适配器模式重用{@link FishingBoat}。
 *
 * @author http://java-design-patterns.com/
 * @translation lvgo
 * @date 18-8-20 下午2:33
 */
public class App {

    public static void main(String[] args) {
        Captain captain = new Captain(new FishingBoatAdapter());
        captain.row();
    }
}
